/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cosas;

/**
 *
 * @author RaMoNs
 */
public class Basura {
    
}
//
//package treegenerator;
//
//import com.mxgraph.examples.swing.GraphEditor.CustomGraph;
//import com.mxgraph.examples.swing.GraphEditor.CustomGraphComponent;
//import java.awt.BorderLayout;
//
//import javax.swing.ImageIcon;
//import javax.swing.JToolBar;
//import javax.swing.UIManager;
//
//import com.mxgraph.examples.swing.editor.BasicGraphEditor;
//import com.mxgraph.examples.swing.editor.EditorActions;
//import com.mxgraph.examples.swing.editor.EditorActions.StylesheetAction;
//import com.mxgraph.examples.swing.editor.EditorPalette;
//import com.mxgraph.examples.swing.editor.SchemaEditorMenuBar;
//import com.mxgraph.examples.swing.editor.SchemaEditorToolBar;
//import com.mxgraph.examples.swing.editor.SchemaGraphComponent;
//import com.mxgraph.io.mxCodec;
//import com.mxgraph.io.vdx.mxStyleSheet;
//import com.mxgraph.io.vdx.mxStyleSheetManager;
//import com.mxgraph.model.mxCell;
//import com.mxgraph.model.mxGeometry;
//import com.mxgraph.swing.mxGraphComponent;
//import com.mxgraph.util.mxRectangle;
//import com.mxgraph.util.mxResources;
//import com.mxgraph.util.mxUtils;
//import com.mxgraph.view.mxCellState;
//import com.mxgraph.view.mxGraph;
//import com.mxgraph.view.mxStylesheet;
//import java.awt.Desktop.Action;
//import java.awt.event.ActionEvent;
//import java.util.List;
//import javax.swing.text.Document;
//
//public class SchemaEditor extends BasicGraphEditor {
//
//    static mxGraph graph;
//    static Object parent;
//    private static final long serialVersionUID = -7007225006753337933L;
//
//    /**
//     * 
//     */
//    public SchemaEditor(GenericTreeNode<String> n) {
//        this(n, "TreeGenerator", new CustomGraphComponent(new CustomGraph()));
//    }
//
//    public SchemaEditor(GenericTreeNode<String> n, String appTitle, mxGraphComponent component) {
//        super(appTitle, component);
//
//        graph = getGraphComponent().getGraph();
//        parent = graph.getDefaultParent();
//        graph.getModel().beginUpdate();
//        try {
//            mxCell v1 = (mxCell) graph.insertVertex(parent, null, n.getData(), xValue, yValue, anchoNodo, altoNodo);
//            imprimirHijosRecursivo(n, xValue, yValue, v1);
//        } finally {
//            graph.getModel().endUpdate();
//        }
//    }
//
//    protected void installToolBar() {
//        add(new SchemaEditorToolBar(this, JToolBar.HORIZONTAL),
//                BorderLayout.NORTH);
//    }
//
//    public static void imprimirHijos(GenericTreeNode<String> n) {
//        try {
//            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
//        } catch (Exception e1) {
//            e1.printStackTrace();
//        }
//        SchemaEditor editor = new SchemaEditor(n);
//
//        javax.swing.Action a = editor.graphLayout("verticalTree", true);
//        a.actionPerformed(null);
//
//
//        cambiarEstilo("/com/mxgraph/examples/swing/resources/basic-style.xml");
////        graph.setStylesheet();
//
//        SchemaEditorMenuBar menuBar = new SchemaEditorMenuBar(editor);
//        editor.createFrame(menuBar).setVisible(true);
//    }
//
//    static void cambiarEstilo(String stylesheet) {
//        mxCodec codec = new mxCodec();
//        org.w3c.dom.Document doc = mxUtils.loadDocument(EditorActions.class.getResource(stylesheet).toString());
//        if (doc != null) {
//            codec.decode(doc.getDocumentElement(),
//                    graph.getStylesheet());
//            graph.refresh();
//        }
//    }
//    static int xValue = 100;
//    static int yValue = 100;
//    static int nodeEspacing = 10;
//    static int altoNodo = 20;
//    static int anchoNodo = 20;
//
//    static void imprimirHijosRecursivo(GenericTreeNode<String> n, int x, int y,
//            mxCell v1) {
//        if (n.hasChildren()) {
//            List<GenericTreeNode<String>> hijos = n.getChildren();
////            if (n.getNumberOfChildren() > 1) {
////                x = x + (n.withNode * nodeEspacing);
////            }
//            y += (yValue / 2);
//            for (int j = 0; j < n.getNumberOfChildren(); j++) {
//                mxCell v2 = (mxCell) graph.insertVertex(parent, null, hijos.get(j).getData(),
//                        x, y, anchoNodo, altoNodo);
//                graph.insertEdge(parent, null, "", v1, v2, "Straight");
//                imprimirHijosRecursivo(hijos.get(j), x, y, v2);
////                x = x - (n.withNode * nodeEspacing);
//            }
//        }
//    }
//}

//        final Container cp = frame.getContentPane();
//        cp.setLayout(new FlowLayout());
//
//
//        JButton mybtn = new JButton("Imprimir");
//        mybtn.addActionListener(
//                new ActionListener() {
//
//                    @Override
//                    public void actionPerformed(ActionEvent e) {
//                        PrintUtilities.printComponent(cp.getComponent(0));
//                    }
//                });
//        cp.add(mybtn);



/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
//package treegenerator;
//
//import javax.swing.JFrame;
//
//import com.mxgraph.swing.mxGraphComponent;
//import com.mxgraph.view.mxGraph;
//import java.util.ArrayList;
//import java.util.List;
//
//public class TreeDraw extends JFrame {
//
//    /**
//     * 
//     */
//    private static final long serialVersionUID = -2707712944901661771L;
//    static mxGraph graph = new mxGraph();
////    static Object parent = graph.getDefaultParent();
//
//    public TreeDraw(GenericTreeNode<String> n) {
////        ArrayList<Object> v1 = new ArrayList<Object>();
////        ArrayList<Object> v2 = new ArrayList<Object>();
//
//
//
//        graph.getModel().beginUpdate();
//        try {
//            Object v1 = graph.insertVertex(parent, null, n.getData(), xValue, yValue, 30, 20);
//            imprimirHijosRecursivo(n, xValue, yValue, v1);
//        } finally {
//            graph.getModel().endUpdate();
//        }
//
//        mxGraphComponent graphComponent = new mxGraphComponent(graph);
//        getContentPane().add(graphComponent);
//    }
//
//    public static void imprimirHijos(GenericTreeNode<String> n) {
//        TreeDraw frame = new TreeDraw(n);
//        frame.setTitle("Hello, World!");
//        frame.setSize(800, 720);
//        frame.setVisible(true);
//        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
////        frame.setVisible(true);
////
//
//
////        imprimirHijosRecursivo(n);
//    }
//    static int xPadre;
//    static int yPadre;
//    static int xHijo;
//    static int yHijo;
//    static int xValue = 400;
//    static int yValue = 100;
//    static int xInc;
//    static int xNivel = 0;
//    static Object parent = graph.getDefaultParent();
//
//    static void imprimirHijosRecursivo(GenericTreeNode<String> n, int x, int y,
//            Object v1) {
//        int xAnt;
//        if (n.hasChildren()) {
//            xNivel += 2;
//            List<GenericTreeNode<String>> hijos = n.getChildren();
////            x = (x - (xValue / 2));
//            xAnt = x;
//
//            x = (xAnt - (400 / xNivel));
//
////            x = xInc;
//
//            y += (yValue / 2);
//
////            xHijo += (xValue/2);
//            for (int j = 0; j < n.getNumberOfChildren(); j++) {
//                Object v2 = graph.insertVertex(parent, null, hijos.get(j).getData() + x, x, y, 30, 20);
//                graph.insertEdge(parent, null, ":", v1, v2);
////                x = x + (x/2);
//                imprimirHijosRecursivo(hijos.get(j), x, y, v2);
//                if (hijos.get(j).hasChildren()) {
//                    x = xAnt + (400 / xNivel);
//                } else {
//                    x = xAnt;
//                }
//
////                x = x + xInc;// n.getNumberOfChildren();
////                x = (x + xInc);
////                x = x / (j + 1);
////                yHijo = y + (yValue/2);
//            }
//            xNivel -= 2;
////            y += yHijo;
//        } 
//    }
//}

//
//package treegenerator;
//
//import java.io.BufferedReader;
//import java.util.ArrayList;
//import java.util.Iterator;
//import java.util.StringTokenizer;
//
//public class MainTreeGenerator {
//
//    private static Nodo nodoRaiz = new Nodo();
//    private static String lineaArchivo;
//    static GenericTree<String> tree = new GenericTree<String>();
//    static ArrayList<GenericTreeNode<String>> listaNodos = new ArrayList<GenericTreeNode<String>>();
////    static Iterator<GenericTreeNode<String>> itrNodo = listaNodos.iterator();
//    static GenericTreeNode<String> root = new GenericTreeNode<String>(nodoRaiz.getNombre());
//    static ArrayList<Rama> ramaList = new ArrayList<Rama>();
//
//    public static void main(String[] args) {
//        crearRamas();
//
//        Iterator<Rama> itrRama = ramaList.iterator();
//        
//        agregarHijos(itrRama, root);
//        recorrerHijos(itrRama, root);
//
//
//        System.out.println(tree.getRoot().toStringVerbose());
//        imprimirHijos(root);
//    }
//
//
//    static void agregarHijos(Iterator<Rama> itr, GenericTreeNode<String> n) {
//        while (itr.hasNext()) {
//            Rama element = itr.next();
//            if (element.padre.getNombre().equals(n.getData())) {
//                n.addChild(new GenericTreeNode<String>(element.hijo.getNombre()));
//            }
//        }
//    }
//
//    static void recorrerHijos(Iterator<Rama> itr, GenericTreeNode<String> n) {
//        for (int i = 0; i < n.getNumberOfChildren(); i++) {
//            itr = ramaList.iterator();
//            agregarHijos(itr, n.getChildAt(i));
//            recorrerHijos(itr, n.getChildAt(i));
//        }
//    }
//
//    static void imprimirHijos(GenericTreeNode<String> n) {
//        for (int i = 0; i < n.getNumberOfChildren(); i++) {
//            if (n.getChildAt(i).getNumberOfChildren() != 0) {
//                System.out.println(n.getChildAt(i).toStringVerbose());
//            }
//            imprimirHijos(n.getChildAt(i));
//        }
//    }
//
//    static void crearRamas() {
//        BufferedReader lectorArchivo = Utilidades.leerArchivo("reglas.txt");
//
//        String nombrePadre = " ";
//        String nombreHijo = " ";
//        int cant = 0;
//        try {
//            while (lectorArchivo.ready()) {
//                lineaArchivo = lectorArchivo.readLine();
//                StringTokenizer st = new StringTokenizer(lineaArchivo, "-");
//                int idToken = 0;
//                while (st.hasMoreTokens()) {
//                    lineaArchivo = st.nextToken();
//                    if (cant == 0) {
//                        root.setData(lineaArchivo);
//                        tree.setRoot(root);
//                        nodoRaiz.setNombre(lineaArchivo);
//                    } else {
//                        if (idToken == 0) {
//                            nombrePadre = lineaArchivo;
//                        } else {
//                            nombreHijo = lineaArchivo;
//                        }
//                    }
//                    idToken++;
//                }
//                if (cant != 0) {
//                    ramaList.add(new Rama(new Nodo(nombrePadre), new Nodo(nombreHijo)));
//                }
//                cant++;
//            }
//        } catch (Exception ex) {
//            System.out.println(ex.getMessage());
//        }
//    }
//}




//        try {
//            int cant = 0;
//            boolean buildChild;
//            while (lectorArchivo.ready()) {
//                lineaArchivo = lectorArchivo.readLine();
//                StringTokenizer st = new StringTokenizer(lineaArchivo, "-");
//                int idToken = 0;
//                buildChild = false;
//                while (st.hasMoreTokens()) {
//                    lineaArchivo = st.nextToken();
//                    if (cant == 0) {
//                        root.setData(lineaArchivo);
//                        tree.setRoot(root);
//                    } else {
//                        if (idToken == 0) {
//                            if (lineaArchivo.equals(root.getData())) {
//                                buildChild = true;
//                            }
//                        } else {
//                            if (buildChild) {
//                                root.addChild(new GenericTreeNode<String>(lineaArchivo));
//                            }
//                        }
//                    }
//                    idToken++;
//                    cant++;
//                }
//            }
//
//            cant = 0;
//            //boolean buildChild;
//            lectorArchivo = Utilidades.leerArchivo("reglas.txt");
//            while (lectorArchivo.ready()) {
//                lineaArchivo = lectorArchivo.readLine();
//                StringTokenizer st = new StringTokenizer(lineaArchivo, "-");
//                int idToken = 0;
//                buildChild = false;
//                while (st.hasMoreTokens()) {
//                    lineaArchivo = st.nextToken();
//                    if (cant == 0) {
////                        root.setData(lineaArchivo);
////                        tree.setRoot(root);
//                    } else {
//                        if (idToken == 0) {
//                            if (lineaArchivo.equals(root.getChildAt(1).getData())) {
//                                buildChild = true;
//                            }
//                        } else {
//                            if (buildChild) {
//                                root.getChildAt(1).addChild(new GenericTreeNode<String>(lineaArchivo));
//                            }
//                        }
//                    }
//                    idToken++;
//                    cant++;
//                }
//            }